package com.zpark.se.io.file;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

/**
 * File类常用方法
 */
public class Demo03 {
    public static void main(String[] args) throws IOException {
        // 创建File对象
        File f = new File("src/com/zpark/se/io/file/f");

        /*
         *  boolean deleteOnExit(): 在虚拟机退出时，删除此抽象路径名表示的文件或目录
         */
        // f.deleteOnExit();

        /*
         boolean equals(Object obj): 比较两个抽象路径名是否相等。
         */
        boolean equals =
                f.equals(new File("src/com/zpark/se/io/file/f"));
        System.out.println(equals);

        /*
         boolean exists(): 测试此抽象路径名表示的文件或目录是否存在
         */
        boolean exists = f.exists();
        System.out.println(exists);

        /*
         File getAbsoluteFile(): 返回此抽象路径名的绝对形式
         */
        File file = f.getAbsoluteFile();

        /*
         String getAbsolutePath(): 返回此抽象路径名的绝对路径名字符串
         */
        String absolutePath = f.getAbsolutePath();
        System.out.println(absolutePath);

        /*
         String getCanonicalPath(): 返回此抽象路径名的规范路径名字符串
         */
        String canonicalPath = f.getCanonicalPath();
        System.out.println(canonicalPath);

        /*
         long getFreeSpace(): 返回此抽象路径名表示的文件系统卷中的剩余空间，以字节为单位
         */
        long freeSpace = f.getFreeSpace();
        System.out.println(freeSpace);

        /*
         String getName(): 返回此抽象路径名的文件名
         */
        String name = f.getName();
        System.out.println(name);

        /*
         String getParent(): 返回此抽象路径名的父路径名字符串，
         如果此路径没有指定父路径，则返回 null
         */
        String parent = f.getParent();
        System.out.println(parent);

        /*
         File getParentFile(): 返回此抽象路径名的父路径对应的file对象
         */
        File parentFile = f.getParentFile();

        /*
         String getPath(): 返回此抽象路径名的路径名字符串，返回相对路径
         */
        String path = f.getPath();
        System.out.println(path);

        /*
         boolean isAbsolute(): 测试此抽象路径名是否为绝对路径名
         */
        boolean absolute = f.isAbsolute();
        System.out.println(absolute);

        /*
         boolean isDirectory(): 测试此抽象路径名表示的文件是否是一个目录
         */
        boolean directory = f.isDirectory();

        /*
         boolean isFile(): 测试此抽象路径名表示的文件是否是一个标准文件
         */
        boolean file1 = f.isFile();

        /*
         boolean isHidden(): 测试此抽象路径名表示的文件是否是隐藏的
         */
        boolean hidden = f.isHidden();

        /*
         long lastModified(): 返回此抽象路径名表示的文件上次修改的时间，以毫秒为单位
         */
        long l = f.lastModified();

        /*
         long length(): 返回此抽象路径名表示的文件的长度，以字节为单位
         */
        long length = f.length();

        /*
         String[] list(): 返回一个字符串数组，这些字符串表示此抽象路径名表示的目录中的文件
         */
        String[] list = f.list();
        System.out.println(Arrays.toString(list));

        /*
         File[] listFiles(): 返回一个数组，这些数组表示此抽象路径名表示的目录中的文件
         */
        File[] files = f.listFiles();

        /*
         boolean mkdir(): 创建此抽象路径名指定的目录
         */
        boolean mkdir = f.mkdir();

        /*
         boolean mkdirs(): 创建此抽象路径名指定的目录，包括任何必需但不存在的父目录
         递归创建目录
         */
        boolean mkdirs = f.mkdirs();

        /*
         boolean renameTo(File dest): 将此抽象路径名重命名为文件 dest，
         */
        boolean b = f.renameTo(new File("src/com/zpark/se/io/file/f1"));

    }
}
